<?php

require_once '../datos/AccesoDatos.php';

include 'session.php';
include_once ('sqlinjection.php');

if (isset($_GET['accion'])) {
    $accion = $_GET['accion'];
} else if (isset($_POST['accion'])) {
    $accion = $_POST['accion'];
}

$objEmpleado = new Empleado();
switch ($accion) {

    case "centrosmedicos": $objEmpleado->actualizarCentrosMedicosxPersona();
        break;

    case "especialidades": $objEmpleado->actualizarEspecialidadesxEmpleado();
        break;

    case "listarespecialidades": $objEmpleado->listaEspecialidadesxEmpleado();
        break;

    case "actualizarprocedimientos": $objEmpleado->actualizarProcedimientosxEmpleado();
        break;

    case "cargarrprocedimientos": $objEmpleado->cargarProcedimientosxEmpleado();
        break;

    case "verificarprocedimientos": $objEmpleado->verificarProcedimientosEspecialidad();
        break;
    case "verificarhorario": $objEmpleado->verificarHorario();
        break;
    case "reprogramar": $objEmpleado->reprogramarCitas();
        break;

    case "datosempleado": $objEmpleado->actualizarDatosEmpleado();
        break;

    case "secresxcentro": $objEmpleado->traerSecresxCentro();
        break;

    case "empleadosxcentro": $objEmpleado->traerEmpleadosxCentro();
        break;

    case "secresxempleado": $objEmpleado->actualizarSecresxEmpleado();
        break;

    case "empleadosxsecre": $objEmpleado->actualizarEmpleadosxSecre();
        break;
    case "tipoempleado": $objEmpleado->tipoEmpleado();
        break;
    case "idempleado": $objEmpleado->idEmpleado();
        break;
    case "cargarprocedimientoscita": $objEmpleado->cargarProcedimientosxEmpleadoCitas();
        break;

    case "traercentros": $objEmpleado->traerCentrosMedicos();
        break;
    
    case "empleadosrelacionados": $objEmpleado->traerEmpleadosRelacionados();
        break;
}

class Empleado {

    var $ID_EMPLEADO;
    var $ID_CENTRO_MEDICO;
    private $ARREGLO_HORARIO = array();
    var $INICIO_HORARIO;
    var $FINAL_HORARIO;
    var $MODO;

    public function getINICIO_HORARIO() {
        return $this->INICIO_HORARIO;
    }

    public function setINICIO_HORARIO($INICIO_HORARIO) {
        $this->INICIO_HORARIO = $INICIO_HORARIO;
    }

    public function getFINAL_HORARIO() {
        return $this->FINAL_HORARIO;
    }

    public function setFINAL_HORARIO($FINAL_HORARIO) {
        $this->FINAL_HORARIO = $FINAL_HORARIO;
    }

    public function getID_EMPLEADO() {
        return $this->ID_EMPLEADO;
    }

    public function setID_EMPLEADO($ID_EMPLEADO) {
        $this->ID_EMPLEADO = $ID_EMPLEADO;
    }

    public function getID_CENTRO_MEDICO() {
        return $this->ID_CENTRO_MEDICO;
    }

    public function setID_CENTRO_MEDICO($ID_CENTRO_MEDICO) {
        $this->ID_CENTRO_MEDICO = $ID_CENTRO_MEDICO;
    }

    public function getARREGLO_HORARIO() {
        return $this->ARREGLO_HORARIO;
    }

    public function setARREGLO_HORARIO($ARREGLO_HORARIO) {
        $this->ARREGLO_HORARIO = $ARREGLO_HORARIO;
    }

    public function getMODO() {
        return $this->MODO;
    }

    public function setMODO($MODO) {
        $this->MODO = $MODO;
    }

    
    public function actualizarDatosEmpleado() {


        $tipoempleado = $_GET['tipoempleado'];
        $codigo = $_GET['codigo'];
        $fechaingreso = $_GET['fechaingreso'];
        $estado = $_GET['estado'];



        $sql = "pa_ActualizarDatosEmpleado('" . $_SESSION['IdPersona'] . "','" .
                $tipoempleado . "','" .
                $codigo . "','" .
                $fechaingreso . "','" .
                $estado;

        $objDatos = new AccesoDatos();
        $objDatos->ejecutarPA($sql);
        $error = $objDatos->devuelveError();

        echo $error;
    }

    public function actualizarCentrosMedicosxPersona() {




        $idpersona = $_SESSION['IdPersona'];

        if (isset($_GET['oper'])) {
            $oper = $_GET['oper'];
        } else if (isset($_POST['oper'])) {
            $oper = $_POST['oper'];
        }



        if ($oper == 'del') {
            $centromedico = $_GET['centromedico'];
        } else if ($oper == 'edit') {


            $intervalo = $_GET['intervalo'];
            $lunes = $_GET['lunes'];
            $martes = $_GET['martes'];
            $miercoles = $_GET['miercoles'];
            $jueves = $_GET['jueves'];
            $viernes = $_GET['viernes'];
            $sabado = $_GET['sabado'];
            $domingo = $_GET['domingo'];
            $centromedico = $_GET['centromedico'];
            $consulta = $_GET['consulta'];
        } else if ($oper == 'add') {

            $intervalo = $_POST['intervalo'];
            $lunes = $_POST['lunes'];
            $martes = $_POST['martes'];
            $miercoles = $_POST['miercoles'];
            $jueves = $_POST['jueves'];
            $viernes = $_POST['viernes'];
            $sabado = $_POST['sabado'];
            $domingo = $_POST['domingo'];
            $centromedico = $_POST['centromedico'];
            $consulta = $_POST['consulta'];
        }





        $sql = "pa_ActualizarCentrosMedicosxPersona('" . $idpersona . "','" . $centromedico . "','" . $intervalo . "','" . $lunes . "','" . $martes . "','" . $miercoles . "','" . $jueves . "','" . $viernes . "','" . $sabado . "','" . $domingo . "','" . $consulta . "','" . $oper;

        $objDatos = new AccesoDatos();
        $objDatos->ejecutarPA($sql);
        $error = $objDatos->devuelveError();


        if ($error != "") {
            echo $error;
        }
    }

    public function actualizarEspecialidadesxEmpleado() {


        $idpersona = $_SESSION['IdPersona'];

        $especialidad = $_POST['especialidad'];

        $especialidadvieja = $_POST['especialidad'];



        $centromedico = $_GET['centromedico'];




        $oper = $_POST['oper'];

        if ($oper == 'edit') {
            $especialidadvieja = $_POST['id'];
        }

        if (isset($_GET['oper'])) {
            $oper = $_GET['oper'];
            $especialidad = $_GET['id'];
        }


        $sql = "pa_ActualizarEspecialidadesxEmpleado('" . $idpersona . "','" . $especialidad . "','" . $especialidadvieja . "','" . $centromedico . "','" . $oper;

        $objDatos = new AccesoDatos();
        $objDatos->ejecutarPA($sql);
        $error = $objDatos->devuelveError();


        if ($error != "") {
            echo $error;
        }
    }

    public function listaEspecialidadesxEmpleado() {


        $idpersona = $_SESSION['IdPersona'];
        $centromedico = $_GET['centromedico'];

        $sql = "pa_ListarEspecialidadesEmpleado('" . $idpersona . "','" . $centromedico;
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);



        while ($row = $objDatos->devuelveArreglo()) {

            echo "<option value='" . $row['ID_ESPECIALIDADMEDICOS'] . "'>" . $row['DS_ESPECIALIDADMEDICOS'] . "</option>";
        }
    }

    function traerHorarioCentroMedicoxEmpleado() {
        $sql = "pa_traerHorarioEmpleado('" . $this->ID_CENTRO_MEDICO . "','" . $this->ID_EMPLEADO;
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $error = $objDatos->devuelveError();
        if ($error != "") {
            echo $error;
        } else {
            while ($row = $objDatos->devuelveArreglo()) {
                $objeto = array('1' => $row['Lunes'], '2' => $row['Martes'], '3' => $row['Miercoles'], '4' => $row['Jueves'], '5' => $row['Viernes'], '6' => $row['Sabado'], '7' => $row['Domingo']);
                $this->ARREGLO_HORARIO[] = $objeto;
            }
        }
        return $this->ARREGLO_HORARIO;
    }

    public function actualizarProcedimientosxEmpleado() {


        $idpersona = $_SESSION['IdPersona'];
        $centromedico = $_GET['centromedico'];
        $procedimiento = $_GET['procedimiento'];
        $tiempo = $_GET['tiempo'];
        $precio = $_GET['precio'];
        $idespecialidad = $_GET['idespecialidad'];


        $oper = $_GET['oper'];


        $sql = "pa_ActualizarProcedimientosxEmpleado('" . $idpersona . "','" . $centromedico . "','" . $procedimiento . "','" . $idespecialidad . "','" . $tiempo . "','" . $precio . "','" . $oper;

        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $error = $objDatos->devuelveError();


        if ($error != "") {
            echo $error;
        }
    }

    public function cargarProcedimientosxEmpleado() {

        $especialidad = $_GET['especialidad'];

        $sql = "pa_ListarProcedimientosxEspecialidadesEmpleado('" . $_SESSION['IdPersona'] . "','" . $especialidad;
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $resultados = array();
        $my_array = array();

        $error = $objDatos->devuelveError();

        if ($error != "") {
            echo $error;
        } else {

            while ($row = $objDatos->devuelveArreglo()) {

                $procedimiento = array(
                    'id' => $row['ID_PROCEDIMIENTO'],
                    'tiempo' => $row['VL_TIEMPO'],
                    'precio' => $row['VL_PRECIO'],
                    'descripcion' => $row['DS_PROCEDIMIENTO']
                );

                $my_array[] = $procedimiento;
            }
            echo json_encode($my_array);
        }
    }

    public function cargarProcedimientosxEmpleadoCitas() {

        $sql = "pa_ListarProcedimientosxEmpleadoCitas('" . $_GET['empleado'];
        ;
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $resultados = array();
        $my_array = array();

        $error = $objDatos->devuelveError();

        if ($error != "") {
            echo $error;
        } else {

            while ($row = $objDatos->devuelveArreglo()) {

                $procedimiento = array(
                    'id' => $row['ID_PROCEDIMIENTO'],
                    'tiempo' => $row['VL_TIEMPO'],
                    'precio' => $row['VL_PRECIO'],
                    'descripcion' => $row['DS_PROCEDIMIENTO']
                );

                $my_array[] = $procedimiento;
            }
            echo json_encode($my_array);
        }
    }

    public function verificarProcedimientosEspecialidad() {



        $this->ID_PERSONA = $_SESSION['IdPersona'];
        $especialidad = $_GET['especialidad'];
        $oper = $_GET['oper'];

        $sql = "pa_verificarProcedimientosEmpleado ('" . $this->ID_PERSONA . "','" . $especialidad . "','" . $oper;
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);



        $error = $objDatos->devuelveError();

        if ($error != "") {
            echo $error;
        } else {

            if ($oper == "slct") {
                echo $objDatos->devuelveRegsLeidos();
            }
        }
    }

    public function verificarHorario() {


        $idpersona = $_SESSION['IdPersona'];


        $lunes = $_GET['lunes'];
        $martes = $_GET['martes'];
        $miercoles = $_GET['miercoles'];
        $jueves = $_GET['jueves'];
        $viernes = $_GET['viernes'];
        $sabado = $_GET['sabado'];
        $domingo = $_GET['domingo'];
        $centromedico = $_GET['centromedico'];



        $sql = "pa_verificarHorarioEmpleado('" . $idpersona . "','" . $centromedico . "','" . $lunes . "','" . $martes . "','" . $miercoles . "','" . $jueves . "','" . $viernes . "','" . $sabado . "','" . $domingo;

        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $error = $objDatos->devuelveError();


        if ($error != "") {
            echo $error;
        } else {

            while ($row = $objDatos->devuelveArreglo()) {
                echo $row['citas'];
            }
        }
    }

    public function rangoHorario() {
        $respuesta;
        $sql = "pa_traerRangoHorario('" . $this->ID_EMPLEADO . "','" . $this->ID_CENTRO_MEDICO . "','" . $this->MODO;
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $error = $objDatos->devuelveError();
        if ($error != "") {
            echo $error;
        } else {
            while ($row = $objDatos->devuelveArreglo()) {
                $respuesta = $row['hora'];
            }
        }
        return $respuesta;
    }

    public function reprogramarCitas() {


        $idpersona = $_SESSION['IdPersona'];


        $lunes = $_GET['lunes'];
        $martes = $_GET['martes'];
        $miercoles = $_GET['miercoles'];
        $jueves = $_GET['jueves'];
        $viernes = $_GET['viernes'];
        $sabado = $_GET['sabado'];
        $domingo = $_GET['domingo'];
        $centromedico = $_GET['centromedico'];



        $sql = "pa_reprogramarCitas('" . $idpersona . "','" . $centromedico . "','" . $lunes . "','" . $martes . "','" . $miercoles . "','" . $jueves . "','" . $viernes . "','" . $sabado . "','" . $domingo;

        $objDatos = new AccesoDatos();

        $objDatos->ejecutarPA($sql);
        $error = $objDatos->devuelveError();


        if ($error != "") {
            echo $error;
        } else {
            //$data = $objDatos->devuelveArreglo();
            $header = array('nombre', 'inicio', 'fin');

            $rs = $objDatos->devuelveConsulta();


            if (mysql_num_rows($rs) > 0) {
                while ($rw = mysql_fetch_array($rs)) {
                    $data[] = $rw;
                }
            }
            //para generar el pdf
            echo 'data=' . serialize($data) . '&header=' . serialize($header);
        }
    }

    /**
     * Devuelve el intervalo de horario
     * @param type $fecha 
     */
    function intervaloHorarioEmpleado($fecha) {
        $sql = "pa_traerHorarioEmpleadoXDia('" . $this->getID_EMPLEADO() . "','" . $this->getID_CENTRO_MEDICO() . "','" . $fecha;
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $error = $objDatos->devuelveError();
        if ($error != "") {
            echo $error;
        } else {
            while ($row = $objDatos->devuelveArreglo()) {
                if ($row['_horario'] == "No") {
                    $this->setINICIO_HORARIO($row['_horario']);
                } else {
                    $this->setINICIO_HORARIO($row['_inicio']);
                    $this->setFINAL_HORARIO($row['_final']);
                }
            }
        }
    }

    function traerSecresxCentro() {

        $id = $_GET['id'];
        /*
         * Identifica si es para jqgrid o para autocomplete
         */


        $sql = "pa_ListarSecresXCentro('" . $id;
        $objDatos = new AccesoDatos();


        $objDatos->ejecutarConsulta($sql);
        $error = $objDatos->devuelveError();


        if ($error != "") {
            echo $error;
        } else {


            // echo "<select> ";
            while ($row = $objDatos->devuelveArreglo()) {
                echo "<option value='" . $row['ID_PERSONA'] . "'>" . $row['DS_NOMBRE'] . ' ' . $row['DS_APELLIDO1'] . ' ' . $row['DS_APELLIDO2'] . "</option>";
            }
            // echo "</select>";
        }
    }

    function traerEmpleadosxCentro() {

        $id = $_GET['id'];
        /*
         * Identifica si es para jqgrid o para autocomplete
         */


        $sql = "pa_ListarEmpleadosXCentro('" . $id;
        $objDatos = new AccesoDatos();


        $objDatos->ejecutarConsulta($sql);
        $error = $objDatos->devuelveError();


        if ($error != "") {
            echo $error;
        } else {


            
            while ($row = $objDatos->devuelveArreglo()) {
                echo "<option value='" . $row['ID_PERSONA'] . "'>" . $row['DS_NOMBRE'] . ' ' . $row['DS_APELLIDO1'] . ' ' . $row['DS_APELLIDO2'] . "</option>";
            }
            
        }
    }

    public function actualizarSecresxEmpleado() {


        $idpersona = $_SESSION['IdPersona'];
        $centromedico = $_POST['centromedico'];
        $secretaria = $_POST['secretaria'];



        $oper = $_POST['oper'];


        if ($oper == 'edit') {

            $idI = $_GET['identificacion'];

            $id = explode("-", $idI);

            $idpersonaviejo = $id[0];
            $secretariaviejo = $id[1];
            $centromedicoviejo = $id[2];
        } else if ($oper == 'del') {
            $idI = $_GET['identificacion'];

            $id = explode("-", $idI);

            $idpersona = $id[0];
            $secretaria = $id[1];
            $centromedico = $id[2];
        }


        $sql = "pa_ActualizarSecresxEmpleado('" . $idpersona . "','" . $idpersonaviejo . "','" . $secretaria . "','" . $secretariaviejo . "','" . $centromedico . "','" . $centromedicoviejo . "','" . $oper;

        $objDatos = new AccesoDatos();
        $objDatos->ejecutarPA($sql);
        $error = $objDatos->devuelveError();


        if ($error != "") {
            echo $error;
        }
    }

    public function actualizarEmpleadosxSecre() {


        $idpersona = $_POST['empleado'];
        $centromedico = $_POST['centromedico'];
        $secretaria = $_SESSION['IdPersona'];




        $oper = $_POST['oper'];


        if ($oper == 'edit') {

            $idI = $_GET['identificacion'];

            $id = explode("-", $idI);

            $idpersonaviejo = $id[0];
            $secretariaviejo = $id[1];
            $centromedicoviejo = $id[2];
        } else if ($oper == 'del') {
            $idI = $_GET['identificacion'];

            $id = explode("-", $idI);

            $idpersona = $id[0];
            $secretaria = $id[1];
            $centromedico = $id[2];
        }


        $sql = "pa_ActualizarSecresxEmpleado('" . $idpersona . "','" . $idpersonaviejo . "','" . $secretaria . "','" . $secretariaviejo . "','" . $centromedico . "','" . $centromedicoviejo . "','" . $oper;

        $objDatos = new AccesoDatos();
        $objDatos->ejecutarPA($sql);
        $error = $objDatos->devuelveError();


        if ($error != "") {
            echo $error;
        }
    }

    function cambiarSesionIdPersona() {
        $sql = "SELECT ID_PERSONA FROM prs_empleado where ID_EMPLEADO = " . $this->ID_EMPLEADO;
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsultaSencilla($sql);
        while ($row = $objDatos->devuelveArreglo()) {
            $_SESSION['IdPersona'] = $row['ID_PERSONA'];
        }
    }

    function tipoEmpleado() {
        $sql = "select ID_TIPOEMPLEADO from prs_empleado where ID_PERSONA = '" . $_SESSION['IdPersonaCons'] . "'";
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsultaSencilla($sql);
        while ($row = $objDatos->devuelveArreglo()) {
            $tipo = $row['ID_TIPOEMPLEADO'];
        }
        echo $tipo;
    }

    function idEmpleado() {
        $sql = "select ID_EMPLEADO from prs_empleado where ID_PERSONA = '" . $_SESSION['IdPersonaCons'] . "'";
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsultaSencilla($sql);
        while ($row = $objDatos->devuelveArreglo()) {
            $tipo = $row['ID_EMPLEADO'];
        }
        echo $tipo;
    }

    public function traerCentrosMedicos() {

        $modo = $_GET['modo'];
        $idempleado = $_GET['idempleado'];

        $sql = "pa_traerCentrosxMedico('" . $idempleado;
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);

        switch ($modo) {
            case 1:
                echo "<select> ";
                while ($row = $objDatos->devuelveArreglo()) {

                    echo "<option value='" . $row['ID_PERSONA'] . "'>" . $row['DS_EMPRESA'] . "</option>";
                }
                echo "<select> ";
                break;

            case 2:

                while ($row = $objDatos->devuelveArreglo()) {
                    $cid = $row['ID_PERSONAJURIDICA'];
                    $cname = $row['DS_EMPRESA'];
                    echo "$cname|$cid\n";
                }
                break;
        }
    }
    
    function traerEmpleadosRelacionados(){
        
        $modo = $_GET['modo'];
        $sql = "pa_ListarEmpleadosRelacionados('" . $_SESSION['IdEmpleado'];
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $error = $objDatos->devuelveError();
        if ($error != "") {
            echo $error;
        } else {
            
                
            switch ($modo) {
            case 1:
                while ($row = $objDatos->devuelveArreglo()) {
                $id = $row['id_empleado'];
                $nombre = $row['empleado'];
                echo "<option value='" . $id . "'>" . $nombre . "</option>";
                }
                break;
            case 2:
               while ($row = $objDatos->devuelveArreglo()) {
                    $cid = $row['id_empleado'];
                    $cname = $row['empleado'];
                    echo "$cname|$cid\n";
                }
            
            
            }
        
    }
        
    }
}

?>
